In a typical Service Oriented Architecture (SOA) environment, multiple individual nodes or application instances can be combined to form a federation of resources that can be accessed from any service node. For example, in the case of federated deployments, the associated nodes or instances of an application can be used as a single virtual application, which allows data stored in any instance to be searched from any node in the SOA environment using a federated service request. In general, federated service requests search across all the instances in the federated deployment (including local instance) and return a combined result.
The response from a federated search (i.e., a federated search transaction) typically contains the results from the multiple instances. Each of the instances generally provides pagination of the data within that instance if a user requests data within certain range. However, when this range is submitted to multiple instances, the combined result typically contains significantly more data than the user expected. In general, since each of the instances could have some data in the requested range, the combined result can potentially have the size of requested range multiplied by the total number of federated instances. To reduce the size of the combined result provided to the user, the combined result is typically cached and only a limited range of the cached data is provided to the user. However, such an approach generally requires application to maintain the user session and requires significant system resources to be able to cache combined results generated for all concurrent users. Accordingly, such an approach typically requires the use of virtual memory techniques to support concurrent users, generally resulting in reduced performance and increased delays.
Another approach can be to utilize a SQL query instead of a federated service request and to limit the number of records returned from the query. In a SQL query, the queries are sent directly to the multiple remote databases instead of sending requests to remote application instances that are part of federated deployment. As a result, SQL queries are generally unacceptable for SOA operations, as SQL queries bypass the services layer of the application instances, missing out on valuable business logic that service layer provides.
Therefore, what is needed is a system and method for managing federated deployments of SOA environment using federated service requests to limit the amount of data retrieved.